//package com.xingzhe.pengji.framework.controller;
//
//import javax.servlet.http.HttpServletRequest;
//import javax.servlet.http.HttpServletResponse;
//
//import org.springframework.web.servlet.ModelAndView;
//
//import com.xingzhe.pengji.framework.pager.PageUtil;
//import com.xingzhe.pengji.framework.pager.Pager;
//import com.xingzhe.pengji.framework.pager.PagerState;
//
//public abstract class PaginationController extends BaseController {
//
//	@Override
//	public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
//		//		Pager pager = executePager(request, response, true);
//		//		pager.calc();
//		//		return executePaginationController(request, response, pager.getPageNumber(), pager.getPageSize());
//		return null;
//	}
//
//	protected Pager executePager(HttpServletRequest request, HttpServletResponse response, boolean pageAble)
//			throws Exception {
//
//		/**页面状态,这个状态是分页自带的,与业务无关*/
//		String pagerController = request.getParameter("pagerController");
//		String value = request.getParameter("pagerKey");
//
//		/**获取下标判断分页状态*/
//		int index = PagerState.getOrdinal(pagerController);
//		Pager pager = null;
//		/**  
//		 * index < 1 只有二种状态  
//		 * 1 当首次调用时,分页状态类中没有值为 NULL 返回 -1  
//		 * 2 当页面设置每页显示多少条: index=0,当每页显示多少条时,分页类要重新计算  
//		 * */
//		Pager sessionPager = getPager(request);
//
//		if (index < 1) {
//			pager = PageUtil.inintPager(getItemCount(request, response), index, value, sessionPager);
//		} else {
//			pager = PageUtil.execPager(index, value, sessionPager);
//		}
//		pager.setPageAble(pageAble);
//		setSession(request, pager);
//		return pager;
//	}
//
//	private Pager getPager(HttpServletRequest request) {
//		Pager pager = (Pager) request.getSession().getAttribute(PageUtil.SESSION_PAGER_KEY);
//		if (pager == null) {
//			pager = new Pager();
//		}
//		return pager;
//	}
//
//	private void setSession(HttpServletRequest request, Pager pager) {
//		request.getSession().setAttribute(PageUtil.SESSION_PAGER_KEY, pager);
//	}
//
//	protected abstract int getItemCount(HttpServletRequest request, HttpServletResponse response) throws Exception;
//
//	protected abstract ModelAndView executePaginationController(HttpServletRequest request,
//			HttpServletResponse response, int pageNumber, int pageSize) throws Exception;
//}
